#pragma once

class Event_Handler
{
public:
	enum
	{
		ACCEPT_MASK = 0,
		READ_MASK,
		WRITE_MASK,
		CONNECT_MASK,
	};

	virtual ~Event_Handler()
	{

	}

	virtual int handle_input(HANDLE _handle)
	{
		return -1;
	}

	virtual int handle_output(HANDLE _handle)
	{
		return -1;
	}

	virtual int handle_timeout(const Time_Value& _timeout)
	{
		return -1;
	};

	virtual int handle_close(HANDLE _handle, Event_Handler_type _et)
	{
		return -1;
	}

	virtual HANDLE get_handle() const
	{
		return INVALID_HANDLE_VALUE;
	}


};